package com.huaxin.hxmodulesystem.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.huaxin.hxmodulesystem.dto.ResponseResult;
import com.huaxin.hxmodulesystem.dto.request.AddPermissionReqDTO;
import com.huaxin.hxmodulesystem.dto.request.UpdatePermissionReqDTO;
import com.huaxin.hxmodulesystem.models.Permission;

import java.util.List;

public interface PermissionService extends IService<Permission> {
    /**
     * 新增权限
     *
     * @param in 入参
     * @return
     */
    ResponseResult<String> addPermission(AddPermissionReqDTO in);

    /**
     * 修改权限
     *
     * @param in 入参
     * @return
     */
    ResponseResult<String> updatePermission(UpdatePermissionReqDTO in);

    /**
     * 删除权限
     *
     * @param id 权限ID
     * @return
     */
    ResponseResult<String> deletePermission(String id);

    /**
     * 查询权限
     *
     * @param id 权限ID
     * @return
     */
    ResponseResult<Permission> queryPermission(String id);

    /**
     * 查询权限列表
     *
     * @param pageNum  页码
     * @param pageSize 每页数量
     * @param search   搜索条件
     * @return
     */
    ResponseResult<Page<Permission>> queryPermissionList(Integer pageNum, Integer pageSize, String search);


}